package com.piggy.logi.sys.api.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.piggy.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 部门扩展信息视图对象 logi_sys_dept_ext
 *
 * @author piggy
 * @date 2023-08-10
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@ApiModel("部门扩展信息视图对象")
public class LogiSysDeptExtVo extends LogiSysDeptVo implements Serializable {

	private static final long serialVersionUID = 1L;

	/** $column.columnComment */
	@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	@ApiModelProperty("$column.columnComment")
	private Long id;

	/** 法人身份证号 */
	@Excel(name = "法人身份证号")
	@ApiModelProperty("法人身份证号")
	private String legalIdcard;

	/** 法人身份证照片url(正面) */
	@Excel(name = "法人身份证照片url(正面)")
	@ApiModelProperty("法人身份证照片url(正面)")
	private String legalIdcardUrl;

	/** 法人身份证照片url(反面) */
	@Excel(name = "法人身份证照片url(反面)")
	@ApiModelProperty("法人身份证照片url(反面)")
	private String legalIdcardUrl2;

	/** 职务(岗位) */
	@Excel(name = "职务(岗位)")
	@ApiModelProperty("职务(岗位)")
	private String deptPost;

	/** 企业性质 */
	@Excel(name = "企业性质")
	@ApiModelProperty("企业性质")
	private String deptNature;

	/** 所属行业 */
	@Excel(name = "所属行业")
	@ApiModelProperty("所属行业")
	private String deptIndustry;

	/** 客户类型(企业类型) */
	@Excel(name = "客户类型(企业类型)")
	@ApiModelProperty("客户类型(企业类型)")
	private String deptEntType;

	/** 组织属性 */
	@Excel(name = "组织属性")
	@ApiModelProperty("组织属性")
	private String deptEntNature;

	/** 企业经营范围 */
	@Excel(name = "企业经营范围")
	@ApiModelProperty("企业经营范围")
	private String deptBizScope;

	/** 公司logo url */
	@Excel(name = "公司logo url")
	@ApiModelProperty("公司logo url")
	private String deptLogo;

	/** 公司成立时间 */
	@Excel(name = "公司成立时间" , width = 30, dateFormat = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("公司成立时间")
	private Date deptDate;

	/** 座机号码 */
	@Excel(name = "座机号码")
	@ApiModelProperty("座机号码")
	private String deptTel;

	/** 营业执照 */
	@Excel(name = "营业执照")
	@ApiModelProperty("营业执照")
	private String deptLicense;

	/** 营业执照照片 */
	@Excel(name = "营业执照照片")
	@ApiModelProperty("营业执照照片")
	private String deptLicenseUrl;

	/** 开户许可证 */
	@Excel(name = "开户许可证")
	@ApiModelProperty("开户许可证")
	private String deptOpenPremit;

	/** 道路经营许可证 */
	@Excel(name = "道路经营许可证")
	@ApiModelProperty("道路经营许可证")
	private String deptRoadLicense;

	/** 场所照片 */
	@Excel(name = "场所照片")
	@ApiModelProperty("场所照片")
	private String deptPlateUrl;

	/** 公司地址所在省份 */
	@Excel(name = "公司地址所在省份")
	@ApiModelProperty("公司地址所在省份")
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private Integer deptProv;

	/** 公司地址所在城市 */
	@Excel(name = "公司地址所在城市")
	@ApiModelProperty("公司地址所在城市")
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private Integer deptCity;

	/** 公司地址所在县/区 */
	@Excel(name = "公司地址所在县/区")
	@ApiModelProperty("公司地址所在县/区")
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private Integer deptDistrict;

	@ApiModelProperty("公司地址所在县/区，中文")
	private String deptDistrictName;

	/** 详细地址 */
	@Excel(name = "详细地址")
	@ApiModelProperty("详细地址")
	private String deptAddress;

	/** 经度 */
	@Excel(name = "经度")
	@ApiModelProperty("经度")
	private BigDecimal deptLat;

	/** 纬度 */
	@Excel(name = "纬度")
	@ApiModelProperty("纬度")
	private BigDecimal deptLng;

	/** 车辆数 */
	@Excel(name = "车辆数")
	@ApiModelProperty("车辆数")
	private Integer vehicleNum;

	/** 员工人数 */
	@Excel(name = "员工人数")
	@ApiModelProperty("员工人数")
	private Integer staffNum;

	/** 其它资料 */
	@Excel(name = "其它资料")
	@ApiModelProperty("其它资料")
	private String otherInfo;

	/** 仓储容量 */
	@ApiModelProperty("仓储容量")
	private BigDecimal deptWhseCapacity;

	/** 是否资质认证(企业相关认证) [1 未认证 1 认证中 3 认证失败 4 已认证] */
	@Excel(name = "是否资质认证(企业相关认证) [1 未认证 1 认证中 3 认证失败 4 已认证]")
	@ApiModelProperty("是否资质认证(企业相关认证) [1 未认证 1 认证中 3 认证失败 4 已认证]")
	private Integer quliFlag;

	/** 资质认证通过时间 */
	@Excel(name = "资质认证通过时间" , width = 30, dateFormat = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("资质认证通过时间")
	private Date quliTime;

	/** 添加时间 */
	@Excel(name = "添加时间" , width = 30, dateFormat = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("添加时间")
	private Date createTime;

	/** 更新时间 */
	@Excel(name = "更新时间" , width = 30, dateFormat = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("更新时间")
	private Date updateTime;

	/** 子部门 */
	@ApiModelProperty("调度范围")
	private Integer dispatchDistance;

	/** 承运货物 */
	@ApiModelProperty("承运货物")
	private String carryingGoods;

	/**
	 * 备注
	 */
	@ApiModelProperty("备注")
	private String remark;

	/** 子部门 */
	@ApiModelProperty("子部门")
	private List<LogiSysDeptExtVo> children = new ArrayList<LogiSysDeptExtVo>();

	/** 子部门 */
	@ApiModelProperty("地址簿管理")
	private List<LogiSysDeptExtVo> bookList = new ArrayList<LogiSysDeptExtVo>();

	/** 子部门 */
	@ApiModelProperty("距离")
	private BigDecimal distince = BigDecimal.ZERO;

	/** 常用线路 **/
	@ApiModelProperty("常用线路")
	private List<LogiDeptLineExtVo> lineList;

}
